perm filename PIXTS1.SAI[VIS,HPM] blob
sn#144764 filedate 1975-02-11 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 BEGIN "PIXTS1"
C00007 ENDMK
C⊗;
BEGIN "PIXTS1"
REQUIRE "VIXNIC.SAI[VIS,HPM]" SOURCE_FILE;
REQUIRE "WIXNIC.SAI[VIS,HPM]" SOURCE_FILE;
INTEGER SIZE,W,CAMERA,CHN,WID,HIG,IAV;
BOOLEAN SYNA,SAME;
REQUIRE "⊂⊃<>" DELIMITERS;
DEFINE BOX(X1,Y1,X2,Y2)=
⊂ IF SYNA THEN
BEGIN
LINE(X1,Y1,X2,Y1);
LINE(X2,Y1,X2,Y2);
LINE(X2,Y2,X1,Y2);
LINE(X1,Y2,X1,Y1);
END
ELSE
BEGIN
DRKEN;
RECTAN(X1,Y1,X2,Y2);
LITEN;
RECTAN((3*(X1)+X2)/4,(3*(Y1)+Y2)/4,(X1+3*(X2))/4,(Y1+3*(Y2))/4);
END
⊃;
WID←HIG←256;
OUTSTR("CAMERA NUMBER:"); CAMERA←CVD(INCHWL) MOD 4;
OUTSTR("WINDOW SIZE:"); W←CVD(INCHWL);
OUTSTR("USE SYNTHESIZER?"); SYNA←(INCHWL LAND '137)="Y";
OUTSTR("SAME PICTURE?"); SAME←(INCHWL LAND '137)="Y";
SIZE←PIXDIM(WID,HIG,4);
OUTSTR("SIZE= "&CVS(SIZE)&'15&'12);
BEGIN
INTEGER ARRAY P1,P2,PIC,PIC1[0:SIZE-1],INTER[-2:(WID-1)%W-1,0:(HIG-1)%W-1];
INTEGER I,J;
OUTSTR("READING ");
MAKPIX(WID,HIG,4,PIC[0]);
MAKPIX(WID,HIG,4,PIC1[0]);
CAMPIX(CAMERA,2,2,1,8,PIC[0]);
IF ¬SAME THEN CAMPIX(CAMERA,2,2,1,8,PIC1[0]) ELSE COPPIC(PIC[0],PIC1[0]);
OUTSTR("DONE"&'15&'12);
PASSHI(PIC[0],W,P1[0]);
PASSHI(PIC1[0],W,P2[0]);
DDINIT; SCREEN(-1,-1,1,1);
DRKEN; RECTAN(-1,-1,1,1); LITEN;
WID←PIC[LNBY]; HIG←PIC[PCLN];
OUTSTR("WID "&CVS(WID)&" HIG "&CVS(HIG)&'15&'12);
IF ¬SYNA THEN OUTSTR(CVOS(CHN←GDDCHN(-1))&" IS THE DD CHANNEL"&'15&'12);
DRKEN; RECTAN(-1,-1,1,1); LITEN;
IF SYNA THEN FOR J←1,2,3 DO DPYUP(SYNMAP(5));
FOR I←(IF SYNA THEN PIC[BYBI]-1 ELSE 0) STEP -1 UNTIL 0 DO
BEGIN
DRKEN; RECTAN(-1,-1,1,1);
IF SYNA THEN VIDEO(-1,0,0,-1,PIC[0],2↑I) ELSE HAFTON(-1,0,0,-1,PIC[0]);
IF SYNA THEN VIDEO(-1,0,0,1,P1[0],2↑I) ELSE HAFTON(-1,0,0,1,P1[0]);
IF SYNA THEN VIDEO(0,0,1,-1,PIC1[0],2↑I) ELSE HAFTON(0,0,1,-1,PIC1[0]);
IF SYNA THEN VIDEO(0,0,1,1,P2[0],2↑I) ELSE HAFTON(0,0,1,1,P2[0]);
FOR J←1,2,3 DO DPYUP(IF SYNA THEN SYNMAP(I-PIC[BYBI]+5) ELSE CHN);
IF ¬SYNA THEN SHOW(CHN);
END;
IF SYNA THEN BEGIN DRKEN; RECTAN(-1,-1,1,1); LITEN; END ELSE INVEN;
IAV←INTRST(PIC[0],W,INTER[0,0]);
FOR I←0 STEP 1 UNTIL (HIG-1)%W-1 DO
FOR J←0 STEP 1 UNTIL (WID-1)%W-1 DO
IF INTER[I,J]≥IAV ∧ (INTER[I,J] LAND 1)≠1 THEN
BEGIN
INTEGER IL,JL,IH,JH;
BOX(<(J+1)*W/WID-1>,<-(I+1)*W/HIG>,<J*W/WID-1>,<-I*W/HIG>);
DPYUP(IF SYNA THEN SYNMAP(5) ELSE CHN);
IL←((I-2)*W) MAX 0; JL←((J-2)*W) MAX 0;
IH←((I+2)*W) MIN (HIG-1); JH←((J+2)*W) MIN (WID-1);
OUTSTR("I "&CVS(I)&" J "&CVS(J)&'15&'12);
OUTSTR("IL "&CVS(IL)&CVS(IH)&" JH "&" JL "&CVS(JL)&" IH "&CVS(JH)&'15&'12);
BSTCOR(PIC[0],J*W,I*W,(J+1)*W,(I+1)*W,PIC1[0],JL,IL,JH,IH);
BOX(<JL/WID>,<-IL/WID>,<JH/WID>,<-IH/WID>);
DPYUP(IF SYNA THEN SYNMAP(5) ELSE CHN);
END;
END;
END;